Data Migrations এবং Database Versioning হল Entity Framework (EF) এর দুটি গুরুত্বপূর্ণ ধারণা, যা ডেটাবেসের স্কিমা (Schema) এবং ডেটাবেসের কন্টেন্ট পরিবর্তন ব্যবস্থাপনা করতে ব্যবহৃত হয়। যখন আপনি একটি প্রজেক্টে Entity Framework ব্যবহার করেন, তখন বিভিন্ন সময়ে আপনার মডেলগুলির (Model) মধ্যে পরিবর্তন আসতে পারে, যেমন নতুন টেবিল বা ফিল্ড যোগ করা, পুরানো ফিল্ড বাদ দেওয়া ইত্যাদি। এই ধরনের পরিবর্তন পরিচালনা করতে Migrations অত্যন্ত কার্যকর।
Data Migrations হল একটি প্রক্রিয়া যা Entity Framework-এ ডেটাবেসের স্কিমা আপডেট করার জন্য ব্যবহৃত হয়। যখন আপনার মডেল ক্লাসে (C# ক্লাস) কোনো পরিবর্তন আসে (যেমন নতুন প্রপার্টি যোগ করা বা মডেল পরিবর্তন করা), তখন আপনি Migrations ব্যবহার করে সেই পরিবর্তন ডেটাবেসে অ্যাপ্লাই করতে পারেন। এটি আপনার কোড এবং ডেটাবেসের মধ্যে সিঙ্ক্রোনাইজেশন রাখে এবং ডেটাবেসের বিভিন্ন সংস্করণ (Versioning) পরিচালনার জন্য সহায়ক।
Entity Framework Code First Approach-এ মাইগ্রেশন প্রক্রিয়া ডেটাবেসের কাঠামো এবং এর ডেটাকে ডেভেলপারদের কোডের সাথে সিঙ্ক্রোনাইজ করে। আপনি মাইগ্রেশন ব্যবহারের মাধ্যমে স্কিমা পরিবর্তনগুলি স্বয়ংক্রিয়ভাবে ট্র্যাক করতে পারেন এবং প্রযোজ্য পরিবর্তনগুলির জন্য SQL স্ক্রিপ্ট তৈরি করতে পারেন।
Entity Framework-এ Migrations ব্যবহারের জন্য কয়েকটি ধাপ অনুসরণ করতে হয়:
Migrations Enable করা: প্রথমে আপনার প্রজেক্টে Migrations ব্যবহার করতে হলে Enable-Migrations কমান্ড দিয়ে মাইগ্রেশন চালু করতে হয়।
Enable-Migrations
এটি একটি Migrations ফোল্ডার তৈরি করবে যেখানে ডেটাবেসের স্কিমা পরিবর্তনগুলি ট্র্যাক করা হবে।
New Migration তৈরি করা: যেকোনো পরিবর্তন (যেমন নতুন Entity যোগ করা বা প্রোপার্টি পরিবর্তন করা) করার পর, আপনি একটি নতুন মাইগ্রেশন তৈরি করতে পারবেন।
Add-Migration <MigrationName>
এখানে <MigrationName>
হল নতুন মাইগ্রেশনের নাম, যা আপনার পরিবর্তন বা আপডেটের জন্য সম্পর্কিত হতে পারে।
Database Update করা: মাইগ্রেশন তৈরি করার পর, আপনাকে সেই মাইগ্রেশন ডেটাবেসে অ্যাপ্লাই করতে হবে। এর জন্য Update-Database কমান্ড ব্যবহার করা হয়:
Update-Database
এই কমান্ডটি মাইগ্রেশন থেকে তৈরি হওয়া পরিবর্তনগুলো ডেটাবেসে বাস্তবায়ন করবে।
Rollback (Undo): যদি আপনি পূর্ববর্তী মাইগ্রেশন স্টেটসে ফিরে যেতে চান, তবে Update-Database -TargetMigration ব্যবহার করে আপনি একটি নির্দিষ্ট মাইগ্রেশন পয়েন্টে ফিরে যেতে পারেন।
Update-Database -TargetMigration: <PreviousMigrationName>
Database Versioning হল ডেটাবেসের বিভিন্ন সংস্করণ ট্র্যাক করার প্রক্রিয়া। Entity Framework-এর মাইগ্রেশন ব্যবস্থা এই সংস্করণিংয়ের কাজটি স্বয়ংক্রিয়ভাবে পরিচালনা করে। যখন আপনি কোনো নতুন মাইগ্রেশন তৈরি করেন, EF একটি Version Control সিস্টেমের মতো কাজ করে, যেখানে প্রতিটি পরিবর্তনকে একটি নির্দিষ্ট মাইগ্রেশন পয়েন্টের সাথে যুক্ত করা হয়।
এটি আপনাকে আপনার ডেটাবেসের আপডেট এবং পরিবর্তনগুলো ট্র্যাক করতে সহায়তা করে এবং একাধিক ডেভেলপার বা পরিবেশে কাজ করার সময় ডেটাবেসের স্কিমা অপ্রত্যাশিতভাবে পরিবর্তিত হওয়ার সম্ভাবনা কমিয়ে দেয়।
Data Migrations এবং Database Versioning Entity Framework-এর মধ্যে ডেটাবেস স্কিমা পরিবর্তন এবং ডেটাবেস ব্যবস্থাপনা সিস্টেমের গুরুত্বপূর্ণ অংশ। এটি ডেভেলপারদের জন্য সহজ করে তোলে ডেটাবেসের কাঠামো এবং কনটেন্ট পরিবর্তনগুলো ট্র্যাক করা এবং সিঙ্ক্রোনাইজ করা। EF মাইগ্রেশন ব্যবহারের মাধ্যমে আপনি আপনার ডেটাবেসকে নিয়ন্ত্রণে রাখতে এবং সুসংগঠিত রাখতে পারবেন, যা ডেভেলপমেন্টের প্রক্রিয়াকে আরও উন্নত ও সুগম করে তোলে।
Code First Migrations Entity Framework (EF) এর একটি শক্তিশালী ফিচার যা ডেটাবেসের কাঠামোকে কোডের মাধ্যমে পরিচালনা করার সুযোগ দেয়। সাধারণত, Code First অ্যাপ্রোচে আপনি প্রথমে কোড লেখেন (ক্লাস, মডেল ইত্যাদি) এবং তারপর EF এই কোড থেকে ডেটাবেস তৈরি করে। তবে, যখন আপনার মডেল (কোড) এবং ডেটাবেসের কাঠামোতে পরিবর্তন আসে, তখন Code First Migrations ব্যবহৃত হয় সেই পরিবর্তনগুলি ডেটাবেসে প্রতিফলিত করতে।
এটি একটি কোড ভিত্তিক ডেটাবেস আপডেট পদ্ধতি, যা আপনাকে ডেটাবেস স্কিমা (structure) পরিবর্তনের জন্য কোনো SQL স্ক্রিপ্ট লিখতে হয় না। পরিবর্তে, EF এর মাইগ্রেশন সিস্টেম নিজেই কোডের মধ্যে ডিফাইন করা মডেল এবং ডেটাবেসের মধ্যে পার্থক্য খুঁজে বের করে এবং সেই অনুযায়ী ডেটাবেস আপডেট করে।
প্রথমত, আপনাকে আপনার প্রজেক্টে মাইগ্রেশন সক্রিয় করতে হবে। এটি করতে আপনি Visual Studio এর Package Manager Console (PMC) ব্যবহার করতে পারেন।
Enable-Migrations
এটি একটি Migrations
ফোল্ডার তৈরি করবে, যেখানে মাইগ্রেশন সম্পর্কিত সব ফাইল থাকবে।
মডেলে কোনো পরিবর্তন করার পর (যেমন নতুন ক্লাস বা প্রোপার্টি যোগ করা), একটি নতুন মাইগ্রেশন তৈরি করতে হবে। এই কাজটি Add-Migration কমান্ড দিয়ে করা হয়। আপনি কমান্ডে মাইগ্রেশনটির একটি নাম দিতে পারেন, যেমন "AddCustomerTable" বা "UpdateProductSchema" ইত্যাদি।
Add-Migration AddCustomerTable
এই কমান্ডটি একটি নতুন মাইগ্রেশন ফাইল তৈরি করবে, যা আপনার মডেল পরিবর্তনের জন্য প্রয়োজনীয় কোড ধারণ করবে। মাইগ্রেশন ফাইলে আপনি প্রাথমিক এবং নতুন ডেটাবেস কাঠামোর পার্থক্য দেখতে পাবেন।
এখন আপনি Update-Database কমান্ড দিয়ে ডেটাবেসে পরিবর্তনগুলি প্রয়োগ করতে পারবেন। এই কমান্ডটি মাইগ্রেশন ফাইল থেকে SQL স্ক্রিপ্ট তৈরি করে ডেটাবেসে সংশোধন প্রয়োগ করে।
Update-Database
এটি ডেটাবেসের কাঠামোকে নতুন মডেল অনুযায়ী আপডেট করবে। যদি পূর্ববর্তী মাইগ্রেশনগুলির কোন সমস্যা থাকে, তবে আপনি -TargetMigration
অপশন ব্যবহার করে নির্দিষ্ট মাইগ্রেশন নির্বাচন করতে পারেন।
যদি কোনো কারণে আপনার মাইগ্রেশনটি সমস্যা তৈরি করে বা আপনি পূর্ববর্তী অবস্থায় ফিরে যেতে চান, তাহলে Update-Database কমান্ডে -TargetMigration
ব্যবহার করে রোলব্যাক করা যেতে পারে।
Update-Database -TargetMigration: "InitialCreate"
এটি ডেটাবেসকে পূর্ববর্তী মাইগ্রেশন পয়েন্টে ফিরিয়ে নিয়ে যাবে।
Code First Migrations Entity Framework এর একটি গুরুত্বপূর্ণ ফিচার যা ডেটাবেসের কাঠামো পরিবর্তন এবং আপডেটের প্রক্রিয়াকে সহজ, কার্যকর এবং নিয়ন্ত্রণযোগ্য করে তোলে। এটি কোড পরিবর্তন থেকে ডেটাবেস আপডেট করার কাজটি স্বয়ংক্রিয়ভাবে করে, যা ডেভেলপারদের জন্য অনেক সুবিধা প্রদান করে।
Entity Framework (EF) ব্যবহার করার সময়, ডেটাবেসের স্কিমা (Schema) বা স্ট্রাকচার পরিবর্তন করলে, সেই পরিবর্তনগুলি ডেটাবেসে প্রতিফলিত করতে মাইগ্রেশন ব্যবহৃত হয়। মাইগ্রেশন হল একটি সিস্টেম যা আপনাকে কোডে ডেটাবেসের পরিবর্তনগুলো ট্র্যাক করতে এবং সেই অনুযায়ী ডেটাবেস আপডেট করতে সাহায্য করে। EF মাইগ্রেশন, Code First পদ্ধতির সাথে বিশেষভাবে কার্যকর, যেখানে আপনি কোডের মাধ্যমে ডেটাবেসের কাঠামো নির্ধারণ করেন এবং EF সেই কাঠামোর পরিবর্তনগুলো ট্র্যাক করে।
Database changes tracking এর মাধ্যমে Entity Framework আপনাকে ডেটাবেস স্কিমা এর পরিবর্তন গুলি ট্র্যাক করতে এবং প্রয়োজন অনুযায়ী মাইগ্রেশন তৈরি করতে সাহায্য করে। EF-এর মাইগ্রেশন সিস্টেমে মূলত তিনটি কাজ করা হয়:
Entity Framework এর মাইগ্রেশন সিস্টেম ব্যবহার করে ডেটাবেসের কাঠামো পরিবর্তন এবং মডেল পরিবর্তন গুলোর জন্য প্রয়োজনীয় কোড তৈরি করা হয়। EF এর মাইগ্রেশন কাজ করে বিশেষত Code First পদ্ধতিতে, যেখানে আপনি প্রথমে কোড লিখে ডেটাবেস মডেল তৈরি করেন এবং পরে সেটিকে ডেটাবেসের সাথে সিঙ্ক করেন।
প্রথম মাইগ্রেশন তৈরি: প্রথমে Entity Framework মডেল তৈরি করার পর, প্রথম মাইগ্রেশনটি তৈরি করা হয়।
Command:
Add-Migration InitialCreate
এই কমান্ডটি ব্যবহার করলে InitialCreate নামের একটি মাইগ্রেশন ফাইল তৈরি হবে। এই ফাইলের মধ্যে প্রথম ডেটাবেস স্কিমা তৈরি করার কোড থাকবে।
ডেটাবেস আপডেট করা: মাইগ্রেশন তৈরি করার পর, আপনি ডেটাবেসকে আপডেট করার জন্য এই মাইগ্রেশন প্রয়োগ করতে পারেন।
Command:
Update-Database
এই কমান্ডটি চালালে, EF আপনার ডেটাবেসে নতুন মডেল অনুযায়ী পরিবর্তনগুলি প্রয়োগ করবে।
পরবর্তীতে মডেল পরিবর্তন করা: যদি আপনি পরে আপনার Entity ক্লাসে কোনো পরিবর্তন করেন (যেমন নতুন প্রপার্টি যোগ করা বা কোন টেবিল মুছে ফেলা), তবে এই পরিবর্তনগুলি ট্র্যাক করা এবং নতুন মাইগ্রেশন তৈরি করা যাবে।
উদাহরণ:
Add-Migration AddPhoneNumberToCustomer
ডেটাবেস আপডেট করা: নতুন মডেল পরিবর্তনগুলির জন্য ডেটাবেসে পরিবর্তন প্রযোজ্য করতে আবার Update-Database কমান্ড ব্যবহার করতে হবে।
Command:
Update-Database
মাইগ্রেশন ফাইল গুলো সাধারণত দুটি অংশে বিভক্ত থাকে:
Update-Database
কমান্ড চালান, তখন এই মেথডের কোডটি প্রয়োগ হয়।Down Method:
এই মেথডের মধ্যে পূর্ববর্তী অবস্থায় ফিরে যাওয়ার জন্য কোড থাকে। এটি সাধারণত ডেটাবেসে পূর্ববর্তী স্ট্রাকচার ফিরিয়ে আনার জন্য ব্যবহৃত হয় (যেমন, নতুন টেবিল বা কলাম মুছে ফেলা)।
উদাহরণ:
public partial class AddPhoneNumberToCustomer : DbMigration
{
public override void Up()
{
AddColumn("dbo.Customers", "PhoneNumber", c => c.String());
}
public override void Down()
{
DropColumn("dbo.Customers", "PhoneNumber");
}
}
যদি আপনি একটি মাইগ্রেশন পূর্বাবস্থায় ফিরিয়ে নিতে চান, তাহলে Update-Database কমান্ডের সাথে -TargetMigration
প্যারামিটার ব্যবহার করতে পারেন।
Update-Database -TargetMigration: "PreviousMigration"
এটি ডেটাবেসকে পূর্ববর্তী মাইগ্রেশন স্টেটসে ফিরে নিয়ে যাবে।
ডেটাবেস মাইগ্রেশনের সময় আপনি ডেটা সিডিংও করতে পারেন, যা দিয়ে আপনি ডেটাবেসে স্বয়ংক্রিয়ভাবে ডেটা ইনসার্ট করতে পারেন। Entity Framework এ ডেটা সিডিং করতে Seed মেথড ব্যবহার করা হয়।
protected override void Seed(MyDbContext context)
{
context.Customers.AddOrUpdate(
c => c.Name,
new Customer { Name = "John Doe", City = "Dhaka" }
);
}
এই কোডটি ডেটাবেসে Customer টেবিলের জন্য নতুন রেকর্ড যোগ করবে বা পুরনো রেকর্ড আপডেট করবে।
AddPhoneNumberToCustomer
বা AddAddressToUser
, যাতে ভবিষ্যতে ট্র্যাকিং এবং মেইন্টেনেন্স সহজ হয়।Entity Framework এর মাইগ্রেশন সিস্টেম ডেটাবেসের পরিবর্তনগুলো ট্র্যাক করতে এবং সেই অনুযায়ী ডেটাবেস আপডেট করতে সাহায্য করে। মাইগ্রেশন ব্যবহার করলে আপনি সহজে কোড এবং ডেটাবেসের স্কিমার মধ্যে সিঙ্ক রাখতে পারবেন এবং ডেটাবেসে কোনো পরিবর্তন আনার সময় অটোমেটেড উপায়ে তা প্রয়োগ করতে পারবেন।
Entity Framework (EF) এর মাইগ্রেশন সিস্টেমের মাধ্যমে, ডেটাবেসের কাঠামোর পরিবর্তন ট্র্যাক এবং প্রয়োগ করা হয়। যখন আপনি Add-Migration কমান্ড দিয়ে নতুন মাইগ্রেশন তৈরি করেন এবং তারপর Update-Database কমান্ড ব্যবহার করেন, তখন আপনার ডেটাবেসটি সেই মাইগ্রেশনের পরিবর্তন অনুযায়ী আপডেট হয়। যদি কোন কারণে আপনি মাইগ্রেশনটি রোলব্যাক করতে চান, তাহলে Rollback কমান্ড ব্যবহার করা হয়।
Update-Database কমান্ডটি Entity Framework মাইগ্রেশন সিস্টেমের একটি গুরুত্বপূর্ণ অংশ, যা তৈরি করা মাইগ্রেশন ফাইলগুলিকে বাস্তব ডেটাবেসে প্রয়োগ করে। যখন আপনি আপনার মডেল বা Entity ক্লাসে কোনো পরিবর্তন করেন এবং সেই পরিবর্তনগুলির জন্য নতুন মাইগ্রেশন তৈরি করেন, তখন Update-Database কমান্ড ব্যবহার করে সেগুলো ডেটাবেসে বাস্তবায়ন করতে হয়।
সর্বশেষ মাইগ্রেশন প্রয়োগ করা:
Update-Database
এই কমান্ডটি আপনার ডেটাবেসের জন্য সর্বশেষ মাইগ্রেশন প্রয়োগ করবে। এটি আপডেটেড স্কিমা অনুযায়ী ডেটাবেসে পরিবর্তন করবে।
বিশেষ মাইগ্রেশন প্রয়োগ করা: আপনি যদি কোন নির্দিষ্ট মাইগ্রেশন প্রয়োগ করতে চান, তাহলে আপনি -Migration
প্যারামিটার ব্যবহার করতে পারেন:
Update-Database -Migration AddPhoneNumberToCustomer
এখানে AddPhoneNumberToCustomer
হল মাইগ্রেশনটির নাম, যা আপনার ডেটাবেসে প্রয়োগ করা হবে।
ডিফল্ট কনটেক্সট ব্যবহার: যদি আপনার একাধিক DbContext থাকে, তবে আপনি কনটেক্সটের নাম নির্দিষ্ট করে দিতে পারেন:
Update-Database -Context MyDbContext
এই কমান্ডটি নির্দিষ্ট DbContext ব্যবহার করে ডেটাবেস আপডেট করবে।
ডেটাবেস কানেকশন স্ট্রিং নির্দিষ্ট করা: যদি আপনি ডিফল্ট কানেকশন স্ট্রিংয়ের পরিবর্তে অন্য কোনো কানেকশন স্ট্রিং ব্যবহার করতে চান, তবে এটি -ConnectionString
প্যারামিটার ব্যবহার করে দিতে পারবেন:
Update-Database -ConnectionString "YourConnectionString"
উন্নত অপশন: আপনি যখন ডেটাবেস আপডেট করেন, তখন -Verbose
অপশন ব্যবহার করে মাইগ্রেশন প্রক্রিয়া সম্পর্কে আরও বিস্তারিত তথ্য পেতে পারেন:
Update-Database -Verbose
Rollback বা পূর্ববর্তী মাইগ্রেশন ফেরত নেয়া Entity Framework-এর মাধ্যমে সহজেই করা যায়। যদি কোনো কারণে আপনি পূর্ববর্তী মাইগ্রেশন সংস্করণে ফিরে যেতে চান, তাহলে Update-Database কমান্ডের সাথে -TargetMigration
প্যারামিটার ব্যবহার করা হয়। এটি আপনার ডেটাবেসকে সেই মাইগ্রেশন পর্যন্ত ফিরিয়ে নিয়ে যাবে যেটি আপনি নির্দিষ্ট করেন।
একটি নির্দিষ্ট মাইগ্রেশন স্তরে রোলব্যাক: আপনি যদি একটি নির্দিষ্ট মাইগ্রেশনে ফিরে যেতে চান, তাহলে TargetMigration প্যারামিটার ব্যবহার করবেন:
Update-Database -TargetMigration: "PreviousMigration"
এখানে PreviousMigration
হল সেই মাইগ্রেশনটির নাম, যা আপনি ফিরিয়ে নিতে চান। এই কমান্ডটি ডেটাবেসে সমস্ত পরিবর্তন রোলব্যাক করে পূর্ববর্তী মাইগ্রেশনকে পুনরুদ্ধার করবে।
অথবা, পূর্ববর্তী মাইগ্রেশনে ফিরে আসা: আপনি যদি মাইগ্রেশনটি সম্পূর্ণভাবে রোলব্যাক করতে চান (মানে, ডেটাবেসে কোন পরিবর্তন না থাকা অবস্থায় ফিরিয়ে আসতে চান), তাহলে -TargetMigration: 0
ব্যবহার করতে পারেন:
Update-Database -TargetMigration: 0
এটি ডেটাবেসকে প্রথম মাইগ্রেশন বা কোনো মাইগ্রেশন না থাকা অবস্থায় ফিরিয়ে নিয়ে যাবে।
Down
মেথডে সংজ্ঞায়িত থাকা সমস্ত কোড কার্যকর হয়ে ডেটাবেস থেকে পরিবর্তন মুছে ফেলা হয়।Up
মেথডে সংজ্ঞায়িত পরিবর্তনগুলি ডেটাবেসে নতুন কোড প্রয়োগ করে ডেটাবেস আপডেট করা হয়।Update-Database
কমান্ড চালানোর আগে মাইগ্রেশন ফাইলগুলো সঠিকভাবে তৈরি হয়েছে কি না তা পরীক্ষা করে নিন।Add-Migration
এবং Update-Database
কমান্ড ব্যবহার করে ডেটাবেসকে সঠিক অবস্থায় ফিরিয়ে আনতে পারেন।Entity Framework এর Update-Database এবং Rollback কমান্ড ব্যবহারের মাধ্যমে আপনি ডেটাবেসের কাঠামো সহজেই পরিচালনা করতে পারবেন, যা ডেভেলপমেন্টের সময় খুবই কার্যকরী ও সুবিধাজনক।
Entity Framework (EF) এ Data Seeding হলো একটি প্রক্রিয়া যার মাধ্যমে ডেটাবেসে প্রাথমিক বা স্ট্যাটিক ডেটা ইনসার্ট করা হয়, যেমন ডিফল্ট বা অপরিবর্তনীয় ডেটা। EF ডেটাবেসে ডেটা সিড করতে দুইটি প্রধান পদ্ধতি ব্যবহার করা যায়: Automatic Seeding এবং Manual Seeding। এখানে আমরা এই দুটি পদ্ধতি এবং তাদের ব্যবহারের ধরন সম্পর্কে আলোচনা করব।
Automatic Data Seeding বা স্বয়ংক্রিয় ডেটা সিডিং হল এমন একটি প্রক্রিয়া যেখানে Entity Framework নিজে থেকেই প্রাথমিক ডেটা সিড করে, সাধারণত ডেটাবেস মাইগ্রেশন করার সময়। EF আপনাকে বিভিন্ন মডেল (Entity Class) এর জন্য ডিফল্ট ডেটা সরবরাহ করতে সক্ষম করে, এবং এটি আপনার মডেল ক্লাসের OnModelCreating
মেথডের মাধ্যমে করা হয়। EF মাইগ্রেশন সম্পাদন করার সময় স্বয়ংক্রিয়ভাবে ডেটাবেসে এই ডেটা সিড করা হয়।
ধরা যাক, আমাদের একটি Student
Entity রয়েছে এবং আমরা ডেটাবেসে প্রাথমিকভাবে কয়েকটি ছাত্রের তথ্য সিড করতে চাই। এর জন্য OnModelCreating
মেথডে Seed Data যোগ করা হবে।
public class SchoolContext : DbContext
{
public DbSet<Student> Students { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
// Automatic Data Seeding
modelBuilder.Entity<Student>().HasData(
new Student { Id = 1, Name = "John Doe", Age = 20 },
new Student { Id = 2, Name = "Jane Smith", Age = 22 }
);
}
}
এখানে:
HasData()
মেথড ব্যবহার করা হয়েছে যাতে Student
Entity এর জন্য কিছু প্রাথমিক ডেটা সিড করা যায়।এটি Automatic Seeding হিসাবে কাজ করে, যেখানে EF নিজে থেকেই এই ডেটাগুলি ডেটাবেসে যোগ করবে।
Automatic Data Seeding সম্পাদনের জন্য আপনাকে মাইগ্রেশন করতে হবে:
নতুন মাইগ্রেশন তৈরি করুন:
dotnet ef migrations add SeedInitialData
ডেটাবেস আপডেট করুন:
dotnet ef database update
এখন আপনার ডেটাবেসে Student
টেবিলে স্বয়ংক্রিয়ভাবে প্রাথমিক ডেটা সিড হয়ে যাবে।
Manual Data Seeding বা ম্যানুয়াল ডেটা সিডিং হল এমন একটি পদ্ধতি যেখানে ডেটা সিডিং কার্যটি আপনার হাতে থাকে এবং আপনি যখন ইচ্ছা তখন সিড করতে পারেন। সাধারণত এটি তখন ব্যবহৃত হয় যখন আপনাকে কোন নির্দিষ্ট সময়ে ডেটা সিড করতে হবে, বা প্রাথমিক ডেটা সিডিং এর জন্য আরও বেশি কাস্টমাইজেশন প্রয়োজন হয়।
ধরা যাক, আপনি ডেটাবেসে কিছু ডিফল্ট ডেটা সিড করতে চান, কিন্তু সেটা স্বয়ংক্রিয়ভাবে নয়, আপনি যখন চাইবেন তখন।
public class SchoolContext : DbContext
{
public DbSet<Student> Students { get; set; }
public void SeedData()
{
// Manually adding data
if (!Students.Any())
{
Students.AddRange(
new Student { Name = "John Doe", Age = 20 },
new Student { Name = "Jane Smith", Age = 22 }
);
SaveChanges();
}
}
}
এখানে:
SeedData()
মেথড তৈরি করা হয়েছে, যা ম্যানুয়ালি ডেটা সিড করার জন্য ব্যবহৃত হবে।Students.Any()
চেক করে যে Students
টেবিলটি খালি আছে কি না, যদি খালি থাকে, তবে ডেটা সিড করা হবে।SaveChanges()
মেথডটি ডেটাবেসে পরিবর্তন সেভ করবে।আপনি যখন আপনার অ্যাপ্লিকেশন চালাবেন, তখন আপনি SeedData()
মেথডটি কল করতে পারেন:
using (var context = new SchoolContext())
{
context.SeedData();
}
এখানে, ম্যানুয়ালি ডেটা সিড করতে SeedData()
মেথড কল করা হয়েছে।
OnModelCreating
মেথডে HasData()
ব্যবহার করে ডেটা সিড করা হয়।DbContext
ব্যবহার করে সিডিং করতে পারেন।Entity Framework-এ Automatic Data Seeding এবং Manual Data Seeding দুটি পদ্ধতি ব্যবহার করে আপনি আপনার ডেটাবেসে প্রাথমিক ডেটা সিড করতে পারেন। Automatic Seeding সাধারণত মাইগ্রেশন চলাকালে EF দ্বারা স্বয়ংক্রিয়ভাবে সম্পন্ন হয়, যখন Manual Seeding ডেভেলপার দ্বারা কাস্টমাইজডভাবে পরিচালিত হয় এবং প্রয়োজনে ম্যানুয়ালি চালু করা যায়।
common.read_more